
#ifndef NVM_SWC_DID_H 
#define NVM_SWC_DID_H 

#include "Platform_Types.h"
#include "NvM.h"

/*FLASH*/
#define Flash_DID_F187_Size   13
#define Flash_DID_F187_ADDR   0xa027FF80

#define Flash_DID_F189_Size   17
#define Flash_DID_F189_ADDR   Flash_DID_F187_ADDR + Flash_DID_F187_Size

#define Flash_DID_F18A_Size   5
#define Flash_DID_F18A_ADDR   Flash_DID_F189_ADDR + Flash_DID_F189_Size

#define Flash_DID_F191_Size   17
#define Flash_DID_F191_ADDR   Flash_DID_F18A_ADDR + Flash_DID_F18A_Size

#define Flash_DID_F193_Size   5
#define Flash_DID_F193_ADDR   Flash_DID_F191_ADDR + Flash_DID_F191_Size

#define Flash_DID_F195_Size   5
#define Flash_DID_F195_ADDR   Flash_DID_F193_ADDR + Flash_DID_F193_Size

#define Flash_DID_F197_Size   5
#define Flash_DID_F197_ADDR   Flash_DID_F195_ADDR + Flash_DID_F195_Size

#define Flash_DID_2105_Size   27
#define Flash_DID_2105_ADDR   Flash_DID_F197_ADDR + Flash_DID_F197_Size

#define Flash_DID_F180_Size   8
#define Flash_DID_F180_ADDR   Flash_DID_2105_ADDR + Flash_DID_2105_Size

#define Flash_DID_F17D_Size   5
#define Flash_DID_F17D_ADDR   Flash_DID_F180_ADDR + Flash_DID_F180_Size

#define Flash_DID_F17E_Size   5
#define Flash_DID_F17E_ADDR   Flash_DID_F17D_ADDR + Flash_DID_F17D_Size

#define Flash_DID_F17F_Size   5
#define Flash_DID_F17F_ADDR   Flash_DID_F17E_ADDR + Flash_DID_F17E_Size

#define Flash_DID_F181_Size   5
#define Flash_DID_F181_ADDR   Flash_DID_F17F_ADDR + Flash_DID_F17F_Size

typedef struct 
{
    uint8 Flash_DID_F187[Flash_DID_F187_Size];/*F187:vehicleManufacturerSparePartNumberDataIdentifier*/
    uint8 Flash_DID_F189[Flash_DID_F189_Size];/*F189:VehicleManufacturerECUSoftwareVersionNumber*/
    uint8 Flash_DID_F18A[Flash_DID_F18A_Size];/*F18A:SystemSupplierIdentifierDataIdentifier*/
    uint8 Flash_DID_F191[Flash_DID_F191_Size];/*F191:VehicleManufacturerECUHardwareVersionNumber*/
    uint8 Flash_DID_F193[Flash_DID_F193_Size];/*F193:systemSupplierECUHardwareVersionNumberDataIdentifier*/
    uint8 Flash_DID_F195[Flash_DID_F195_Size];/*F195:SystemSupplierECUSoftwareVersionNumberDataIdentifier*/
    uint8 Flash_DID_F197[Flash_DID_F197_Size];/*F197:SystemName*/
    uint8 Flash_DID_2105[Flash_DID_2105_Size];/*2105:EOL_Version*/
    uint8 Flash_DID_F180[Flash_DID_F180_Size];/*F180:OEMECUBootloaderSoftwareVersionNumber*/
    uint8 Flash_DID_F17D[Flash_DID_F17D_Size];/*F17D:ECUBasicAPPSoftwareNumber*/
    uint8 Flash_DID_F17E[Flash_DID_F17E_Size];/*F17E:ECUCalibrationSoftwareNumber*/
    uint8 Flash_DID_F17F[Flash_DID_F17F_Size];/*F17F:ECUNetworkNumber*/
    uint8 Flash_DID_F181[Flash_DID_F181_Size];/*F181:ECUOSSoftwareVersionNumber*/
}Flash_Did_data_t;
extern Flash_Did_data_t Flash_Did_data;

/*EEPROM*/
extern uint8 NvM_DID_F18B[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F18B];/*F18B:ECU_Manufactur_Date*/
extern uint8 NvM_DID_F18C[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F18C];/*F18C:ECU_Serial_Number*/
extern uint8 NvM_DID_F190[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F190];/*F190:VINDataIdentifier*/
extern uint8 NvM_DID_F199[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F199];/*F199:ProgrammingDate*/
extern uint8 NvM_DID_F19D[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F19D];/*F19D:ECU Installation Date*/
extern uint8 NvM_DID_2102[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2102];/*2102:J3_Init_Status_monitor*/
extern uint8 NvM_DID_2103[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2103];/*2103:Ethernet_port_mode*/
extern uint8 NvM_DID_2104[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2104];/*2104:PCBA_SN_number*/
extern uint8 NvM_DID_2106[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2106];/*2106:System_configuration_for_ADAS_only_new*/
extern uint8 NvM_DID_2107[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2107];/*2107:DTC_configuration*/
extern uint8 NvM_DID_2109[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2109];/*2109:Camera_target_parameters*/
extern uint8 NvM_DID_2110[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2110];/*2110:Camera_installation_parameters*/
extern uint8 NvM_DID_2111[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_2111];/*2111:Camera_vehicle_parameters*/
extern uint8 NvM_DID_F1A0[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F1A0];/*F1A0:VehicleManufacturingDataIdentifier*/
extern uint8 NvM_DID_F100[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F100];/*F100:ActiveDiagnosticInformation*/
extern uint8 NvM_DID_F1A1[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_F1A1];/*F1A1:SystemConfiguration*/
extern uint8 NvM_DID_21F0[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_21F0];/*21F0:ADASFrontCameraAftermarketCalibrationStatus*/
extern uint8 NvM_DID_21F1[NVM_CFG_NV_BLOCK_LENGTH_NvMBlockDescriptor_21F1];/*21F1:ADASFrontCameaEOLCalibrationStatus*/


/*RAM*/
#define Ram_DID_2101_Size 3
#define Ram_DID_21A0_Size 29
#define Ram_DID_21A1_Size 90
#define Ram_DID_21A2_Size 220
#define Ram_DID_21A3_Size 3
#define Ram_DID_21A4_Size 1
extern uint8 Ram_DID_2101[Ram_DID_2101_Size];/*2101:J3app_version*/
extern uint8 Ram_DID_21A0[Ram_DID_21A0_Size];/*21A0:CSA_Load*/
extern uint8 Ram_DID_21A1[Ram_DID_21A1_Size];/*21A1:J3ResetReason*/
extern uint8 Ram_DID_21A2[Ram_DID_21A2_Size];/*21A2:FLCStatusRecord*/
extern uint8 Ram_DID_21A3[Ram_DID_21A3_Size];/*21A3:EthernetPortSQI*/
extern uint8 Ram_DID_21A4[Ram_DID_21A4_Size];/*21A4:CheckInstallationStatus*/

#endif	/* NVM_SWC_DID_H */